package com.hankol.winecellar.bean

import android.annotation.SuppressLint
import com.baselibrary.base.BasicBean
import com.baselibrary.bean.MediaInfo
import kotlinx.android.parcel.Parcelize

//附近酒窖列表
@SuppressLint("ParcelCreator")
@Parcelize
data class NearbyWineCellarListBean(
        val cityCode: Int,
        val cityName: String,
        val comments: List<WineryCommentBean>,
        //人均消费价格
        val consumptionPrice: Long,
        val countyCode: Int,
        val countyName: String,
        val createTime: Long,
        val latitude: Double,
        val longitude: Double,
        val ctime: Long,
        val dealerCode: String,
        val detailAddress: String,
        val distance: Int,
        val endTime: String,
        val id: Int,
        val isShow: Int,
        val provinceCode: Int,
        val provinceName: String,
        val startTime: String,
        val updateTime: Long,
        val userPhone: String,
        val utime: Long,
        val wineryArea: String,
        val wineryDealerName: String,
        val wineryDealerPhone: String,
        val wineryDesc: String,
        //酒窖基础设施
        val wineryFacility: String,
        //酒窖特色
        val wineryFeature: String,
        val wineryId: String,
        val wineryImg: String,
        val wineryLabelConfigFeature: ArrayList<LabelConfigFacilityBean>,
        val wineryName: String,
        val winerySlideshow: String,
        val wineryStatus: Int,
        val coverNum: Int,
        val wineryUV: Int
) : BasicBean()

//下酒菜管理列表
@SuppressLint("ParcelCreator")
@Parcelize
data class PrivateMealManageListBean(
        val appetizerDesc: String,
        var appetizerImg: String,
        val appetizerName: String,
        val ctime: Long,
        val id: Int,
        val sort: Int,
        val type: Int,
        val utime: Long,
        val wineryCode: String,
        val wineryName: String
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class MineCenterMenuBean(
        val wineryConfigs: List<WineryCommonToolBean>,
        val wineryPlatforms: List<WineryCommonToolBean>,
        val wineryXsglList: List<WineryCommonToolBean>
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class WineryCommonToolBean(
        val ctime: Long,
        val icon: String,
        val id: Int,
        val name: String,
        val personType: Int,
        val routeId: Int,
        val routeKey: String,
        val routeUrl: String,
        val sort: Int,
        val status: Int,
        val url: String,
        val tips: String,
        val utime: Long
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class MarkerInfoBean(
        var latitude: Double,//纬度
        var longitude: Double,//经度
        var name: String,//名字
        var imgId: Int,//图片
        var description: String//描述
) : BasicBean()

//经营者信息
@SuppressLint("ParcelCreator")
@Parcelize
data class WineryDealerInfoBean(
        val cityCode: Int,
        val cityName: String,
        val corporation: String,
        val corporationTel: String,
        val countyCode: Int,
        val countyName: String,
        val createTime: Long,
        val ctime: Long,
        val dealerCode: String,
        val dealerName: String,
        val dealerType: Int,
        val detailAddress: String,
        val id: Int,
        val latitude: Double,
        val longitude: Double,
        val parentDealerStoreIds: String,
        val provinceCode: Int,
        val provinceName: String,
        val useFlag: Int,
        val utime: Long,
        val wineryFlag: Int
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class WineEvaluateBean(
        val cover: String, val content: String, val isFans: Int
) : BasicBean()

//编辑酒窖数据回显
@SuppressLint("ParcelCreator")
@Parcelize
data class WineryDataInfoBean(
        var wineryImg: String = "",
        //轮播图  json list 字符串
        var winerySlideshow: String = "",
        var consumptionPrice: Int = 0,
        var startTime: String = "",
        var endTime: String = "",
        var wineryDealerPhone: String = "",
        var wineryDesc: String = "",
        //酒窖基础设施
        var wineryFacility: String = "",
        //酒窖特色
        var wineryFeature: String = "",
        var wineryName: String = "",
        var wineryLabelConfigFeature: ArrayList<LabelConfigFacilityBean> = arrayListOf(),//特色
        var wineryLabelConfigFacility: ArrayList<LabelConfigFacilityBean> = arrayListOf(),//基础
        var cityCode: Int = 0,
        var cityName: String = "",
        var countyCode: Int = 0,
        var countyName: String = "",
        var createTime: Long = 0,
        var ctime: Long = 0,
        var dealerCode: String = "",
        var detailAddress: String = "",
        var id: Long = 0,
        var distance: Int = 0,
        var isShow: Int = 0,
        var provinceCode: Int = 0,
        var provinceName: String = "",
        var updateTime: Long = 0,
        var userPhone: String = "",
        var utime: Long = 0,
        var wineryArea: String = "",
        var wineryDealerName: String = "",
        var wineryId: Long = 0,
        var uid: Long = 0,
        var wineryStatus: Int = 0,
        var wineryUV: Int = 0,
        var shopId: Int = 0,
        var latitude: Double = 0.0,
        var longitude: Double = 0.0,
        //分享小程序二维码
        var shareWxAppQrImgUrl: String = ""
) : BasicBean()

//酒窖评论列表
@SuppressLint("ParcelCreator")
@Parcelize
data class WineryEvaluateListBean(
        val ctime: Long,
        val icon: String,
        val id: Long,
        val isFans: Int,
        val name: String,
        val phone: String,
        val type: Int,
        val uid: Int,
        val utime: Long,
        val wineryCode: String,
        val wineryCommentDesc: String,
        val wineryCommentImg: String,
        val wineryName: String
) : BasicBean()

//获取经营者 的酒窖信息
@SuppressLint("ParcelCreator")
@Parcelize
data class WineryInfoDataBean(
        val shopId: Int,
        val cityCode: Int,
        val cityName: String,
        val corporation: String,
        val corporationTel: String,
        val countyCode: Int,
        val countyName: String,
        val createTime: Long,
        val ctime: Long,
        val dealerCode: String,
        val dealerName: String,
        val dealerType: Int,
        val detailAddress: String,
        val id: Int,
        val latitude: Double,
        val longitude: Double,
        val parentDealerStoreIds: String,
        val provinceCode: Int,
        val provinceName: String,
        //  0已发布   1已冻结  2  待发布  3：审核中
        val status: Int,
        //类型 0未发布 1已发布"  2：首次发布被拒
        val type: Int,
        val useFlag: Int,
        val utime: Long,
        val wineryFlag: Int,
        val wineryImg: String,
        val shareWxAppQrImgUrl: String,
        val consumptionPrice: Int,
        val wineryLabelConfigFeature: List<LabelConfigFacilityBean>,
        val wineryId: String
) : BasicBean()

//经营者信息
@SuppressLint("ParcelCreator")
@Parcelize
data class WineryManageInfoDataBean(
        val cityCode: Int,
        val cityName: String,
        val corporation: String,
        val corporationTel: String,
        val countyCode: Int,
        val countyName: String,
        val createTime: Long,
        val ctime: Long,
        val dealerCode: String,
        val dealerName: String,
        val dealerType: Int,
        val detailAddress: String,
        val id: Long,
        val latitude: Double,
        val longitude: Double,
        val parentDealerStoreIds: String,
        val provinceCode: Int,
        val provinceName: String,
        val useFlag: Int,
        val utime: Long,
        val wineryFlag: Int
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class UserWienryStatusBean(
        val code: Int, val `data`: Boolean, val msg: String, val success: Boolean
) : BasicBean()

//酒窖详情的顶部 图片轮播   0：图片  1视频
@SuppressLint("ParcelCreator")
@Parcelize
data class WineryCoverBean(
        var coverUrl: String, var videoUrl: String, val type: Int,
        //本地字段
        var isSelect: Boolean = false
) : BasicBean()

//获取线上酒窖管理数据
@SuppressLint("ParcelCreator")
@Parcelize
data class WineryManagerBean(
        //审核状态0待处理 1审核通过 2驳回
        val auditStatus: Int,
        val auditTime: Long,
        //申请类型 0创建 1编辑
        val auditType: Int,
        val cityName: String,
        val comments: List<WineryCommentBean>,
        val consumptionPrice: Int,
        val countyName: String,
        val ctime: Long,
        val dealerCode: String,
        val detailAddress: String,
        val coverNum: Int,
        val distance: Int,
        val id: Int,
        val provinceName: String,
        val rejectContent: String,
        val utime: Long,
        val wineryCode: Long,
        val wineryId: Int,
        val wineryImg: String,
        val wineryLabelConfigFeature: List<LabelConfigFacilityBean>,
        val wineryName: String,
        val wineryStatus: Int
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class WineryCommentBean(
        val ctime: Long,
        val icon: String,
        val id: Int,
        //1:粉丝
        val isFans: Int,
        val name: String,
        val phone: String,
        val type: Int,
        val uid: Int,
        val utime: Long,
        val wineryCode: String,
        val wineryCommentDesc: String,
        val wineryCommentImg: String,
        val wineryName: String
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class GoodsManagerListBean(
        val icon: String,
        val name: String,
        val showPrice: Int,
        val sort: Long,
        val spuId: Int,
        val stock: Int
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class MallOrderSkuDtoBean(
        val afterSale: AfterSaleBean,
        val num: Int,
        val popiId: Int,
        val price: Int,
        val shopId: Int,
        val shopName: String,
        val skuCover: String,
        val skuId: Int,
        val specList: List<String>,
        val spuId: Int,
        val giftType:Int = 0,
        val spuName: String
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class GoodsAfterSaleListBean(
        var afterSaleCode: String = "",
        var afterSaleDesc: String = "",
        var afterSaleId: Long = 0,
        var afterSalePic: ArrayList<String> = arrayListOf(),
        var afterSaleReason: Int = 0,
        var afterSaleRefuseDesc: String = "",
        var afterSaleStatus: Int = -1,//售后状态：0-处理中，1-已同意，2-已拒绝
        var auditReturnNum: Int = 0,//审核退款数量
        var auditReturnPrice: Int = 0,//审核退款金额
        var auditReturnScore: Int = 0,//审核退还酒币
        var auditTime: Long = 0,//审核时间,/售后同意时间
        var poId: Long = 0,//商品订单Id
        var requestTime: Long = 0,//售后申请时间
        var returnType: Long = 0,//退款方式:0-原支付返还
        var productOrderCode: String = "",//订单编号
        var products: ArrayList<ProductsBean> = arrayListOf()//订单编号
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class ProductsBean(
        var afterSaleRequestPrice: Long = 0L,
        var num: Int = 0,
        var requestNum: Int = 0,
        var skuId: Long = 0,
        var shopId: Long = 0,
        var spuId: Long = 0,
        var shopName: String = "",
        var skuCover: String = "",
        var spuName: String = "",
        var specList: ArrayList<String> = arrayListOf()//规格字符串列表
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class AfterSalesInfoBean(
        val afterSaleCode: String,
        val afterSaleDesc: String,
        val afterSaleId: Long,
        val afterSalePic: ArrayList<MediaInfo>,
        val afterSaleReason: Int,
        val afterSaleRefuseDesc: String,
        val afterSaleRequestPrice: Int,
        val afterSaleStatus: Int,
        val productOrderStatus: Int,//订单状态：0-待付款（创建），1-待发货（已付款），2-待收货（已发货），5-已完成，6-已关闭
        val auditReturnGsScore: Long,
        val auditReturnNum: Int,
        val auditReturnPrice: Long,
        val auditReturnScore: Long,
        val auditTime: Long,
        val poId: Long,
        val productOrderCode: String,
        val products: List<MallOrderSkuDtoBean>,
        val requestTime: Long,
        val returnType: Int
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class GoodsOrderListBean(
        //售后状态：-1-无，0-处理中
        val afterSaleStatus: Int,
        val dealerCode: String,
        val num: Int,
        val orderCode: String,
        val orderListSkuDtoList: List<OrderListSkuDtoBean>,
        val overtime: Long,
        val poId: Int,
        val price: Int,
        val receiveOvertime: Int,
        val score: Int,
        val shopId: Int,
        val shopName: String,
        //状态:-1-全部，0-待付款，1-待发货，2-待收货,5-已完成
        val status: Int,
        val wineryId: Long
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class OrderListSkuDtoBean(
        val num: Int,
        val price: Int,
        val score: Int,
        val shopId: Int,
        val shopName: String,
        val skuCover: String,
        val skuId: Int,
        val specList: List<String>,
        val spuId: Int,
        val giftType:Int = 0,
        val spuName: String
) : BasicBean()

/* 订单详情*/
@SuppressLint("ParcelCreator")
@Parcelize
data class GoodsOrderLoadDetailBean(
        val cancelTime: Long,
        val cancelType: Int,
        val code: String,
        val consumeScore: Int,
        val ctime: Long,
        val desc: String,
        val express: ExpressBean,
        //是否允许修改订单地址, 0-不允许,1-允许
        val isAllowModifyAddress: Int,
        val isFans: Int,
        val orderCancelReason: CancelReasonListBean,
        val overtime: Long,
        val payPrice: Int,
        val payTime: Long,
        val payType: Int,
        val poId: Int,
        val postOption: Int,
        val postagePrice: Int,
        val price: Int,
        val productCount: Int,
        val receiveOvertime: Long,
        val receiveTime: Long,
        val rewardScore: Int,
        val scoreDeductPrice: Int,
        val sendTime: Long,
        val shopDto: List<ShopDtoBean>,
        val shouldPayPrice: Int,
        val shouldRewardScore: Int,
        //状态：0-待付款（创建），1-待发货（已付款），2-待收货（已发货），3-待评价（已收货），5-已完成，6-已关闭
        val status: Int,
        val uid: Int,
        //下单人电话
        val uphone: String
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class ShopDtoBean(
        val mallOrderSkuDtoList: List<MallOrderSkuDtoBean>,
        val shopId: Int,
        val wineryId: Long,
        val dealerCode: String,
        val shopName: String
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class AfterSaleBean(
        val afterSaleStatus: Int,
        val id: Int
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class CancelReasonListBean(
        val cancellationId: Int, val desc: String, var isSelect: Boolean
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class ExpressBean(
        val userAddressAddress: String,
        var userAddressId: Int,
        val userAddressName: String,
        val userAddressPhone: String
) : BasicBean()

//物流信息
@SuppressLint("ParcelCreator")
@Parcelize
data class LogisticeInfoBean(
        val kuaiDiInfos: List<KuaiDiInfoBean>, val wuliu: List<WuliuBean>
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class KuaiDiInfoBean(
        val kuaiDiCom: String, val kuaiDiNum: String
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class WuliuBean(
        val com: String,
        val condition: String,
        val `data`: List<WuliuDataBean>,
        val ischeck: String,
        val message: String,
        val nu: String,
        val state: String,
        val status: String
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class WuliuDataBean(
        val areaCode: String,
        val areaName: String,
        val context: String,
        val ftime: String,
        val status: String,
        val time: String
) : BasicBean()

//商品分页列表数字统计
@SuppressLint("ParcelCreator")
@Parcelize
data class GoodsNumStatisticsBean(
        //已下架
        val offLineNum: Int,
        //售卖中
        val onLineNum: Int
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class SuccessBean(
        val success: Boolean
) : BasicBean()
//获取所有快递企业
@SuppressLint("ParcelCreator")
@Parcelize
data class AllComponyBean(
        val code: String,
        val name: String
) : BasicBean()
//热门城市
@SuppressLint("ParcelCreator")
@Parcelize
data class HotCityBean(
    val cityName: String,
    val ctime: Int,
    val id: Int,
    val utime: Int
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class WineCellarPosterParams(
        var bgCover:String,
        var title:String,
        var price:String,
        var label:List<String>,
        var address:String,
        var qrCode:String
): BasicBean()
//获取酒窖秒杀商品列表
@SuppressLint("ParcelCreator")
@Parcelize
data class WineryGoodsSeckillBean(
    val autoCancel: Int,
    val ctime: Long,
    val fansPrice: Long,
    val price: Long,
    val delStatus: Int,
    val etime: Long,
    val fansUserBuy: Int,
    val fansUserBuyNum: Int,
    val icon: String,
    val id: Int,
    val normalUserBuy: Int,
    val normalUserBuyNum: Int,
    val pushContent: String,
    val pushPower: Int,
    val pushTitle: String,
    val seckillActProductExtDTO: SeckillActProductBean?,
    val shopId: Int,
    val shopName: String,
    val skcode: String,
    val skname: String,
    val skuListJson: String,
    val smsContent: String,
    val smsPower: Int,
    val spuIcon: String,
    val spuIconLong: String,
    val spuId: Int,
    val spuJson: String,
    val spuName: String,
    val stime: Long,
    val subscribeRemind: Int,
    val utime: Long,
    val virSubscribeNum: Int,
        //hasVideos  0没有，1有
    val hasVideos: Int
): BasicBean()
@SuppressLint("ParcelCreator")
@Parcelize
data class LabelConfigFacilityBean(
        var labelName: String = "",
        var id: Int = 0,
        val sort: Int = 0,
        val type: Int = 0,
        val utime: Long = 0L,
        val ctime: Long = 0L,
        var checked: Boolean = false
) : BasicBean()
//秒杀对象
@Parcelize
data class SeckillActProductBean(
        val etime: Long=0L,
        val fansPrice: Int=0,
        val fansUserBuy: Int=0,
        val fansUserBuyNum: Int=0,
        val normalUserBuy: Int=0,
        val normalUserBuyNum: Int=0,
        val price: Int=0,
        val ruleContent: String,
        val sales: Int=0,
        val seckillActId: Int=0,
        val seckillActName: String ="",
        val secKillIcon: String ="",
        val skuId: Int=0,
        val spuId: Int=0,
        val stime: Long=0L,
        val stock: Int=0,
        //是否预约:0未预约，1已预约
        var subscribeFlg: Int=0,
        var subscribeNum: Int=0
) : BasicBean()
@SuppressLint("ParcelCreator")
@Parcelize
data class MallLabelBean(
        val description: String,
        val icon: String,
        val id: Int,
        val name: String
): BasicBean()
//banner列表
@SuppressLint("ParcelCreator")
@Parcelize
data class BannerConfigListBean(
        val bannerConfigs: List<BannerConfigBean>,
        val bannerRule: BannerRuleBean?
) : BasicBean()
@SuppressLint("ParcelCreator")
@Parcelize
data class BannerConfigBean(
        val appletId: String,
        val bannerType: Int,
        val ctime: Long,
        val delStatus: Int,
        val endTime: Long,
        val id: Int,
        val img: String,
        val name: String,
        val otherId: Int,
        val routeType: Int,
        val routeUrl: String,
        val sort: Int,
        val startTime: Long,
        val utime: Long
) : BasicBean()
@SuppressLint("ParcelCreator")
@Parcelize
data class BannerRuleBean(
        val bannerType: Int,
        val ctime: Int,
        val high: Int,
        val id: Int,
        val utime: Int,
        val wide: Int
) : BasicBean()
//秒杀-添加预约
@Parcelize
data class SeckillAddSubscribeBean(
        //活动id
        val actId: Int,
        //开始时间
        val stime: Long,
        //预约提醒时间
        val subscribeRemind: Int
) : BasicBean()